This invention relates generally to electronic keyboards, and is particularly directed to the detection of simultaneously engaged keys in a multi-key, high speed keyboard.
An experienced typist typically engages in rapid sequence desired keys on a multi-key keyboard. Although each key is sequentially engaged, at any given instant in time more than one key may be down. This requires high speed key detection and the ability to distinguish between simultaneously engaged keys. In a typical matrix-type keyboard, this calls for rapid scanning of the matrix by sequencing input signals to the columns, or rows, of the matrix and detecting an output signal representing a selected key in a given row, or column. The matrix keyboard includes a plurality of mechanical switches, each located at the intersection of a row and a column. Selection of a key results in closure of the switch and provides a signal path for indicating which key has been engaged.
A matrix switch arrangement utilizing mechanical switches possesses inherent limitations in detecting the simultaneous engagement of multiple keys. This is due to the manner in which the rows and columns are sequentially scanned and the ambiguities inherent in the simultaneous selection of more than one switch in a given row or column. One approach for solving this problem attempts to detect three simultaneously engaged keys forming a right angle in the matrix keyboard. If such an orientation of engaged keys is detected, the microprocessor controlling keyboard scan waits to report engagement of the third key until one of the first two keys is deselected. While this approach claims to solve the problem of "ghost key" engagement, it involves a somewhat complicated algorithm implemented by the microprocessor for detecting the required right angle orientation of the selected keys. In addition, this approach results in a relatively slow scan of the keyboard which raises the possibility of missed keys during high speed operation. The ideal system would be capable of detecting the simultaneous engagement of all keys (N) on the keyboard and of keeping track of the sequence in which each of the keys was selected. This capability is generally referred to as "N-key rollover" and while many systems claim to have this capability, virtually none do as it would require an overly complicated and expensive microprocessor controlled keyboard scanning routine. Most available systems offer something less than "N-key rollover" and represent a trade-off between capability and expense.
The present invention is intended to provide an improved keyboard scanning system and method particularly adapted for use in a mechanical matrix-type, multi-key keyboard which is inexpensive and highly reliable in rejecting spurious keyboard entry signals.